const promise = new Promise((resolve, reject) => {
  resolve('AC to DC');
});

// then方法返回一个新的Promise,链式中的then是在等待这个新的Promise
promise
  .then((result) => {
    console.log('第一个then方法:', result);
    return 'DC to AC';
  })
  .then((result) => {
    console.log('第二个then方法:', result);
    return 'AC to DC';
  })
  .then((result) => {
    console.log('第三个then方法:', result);
    return 'DC to AC';
  })
  .then((result) => {
    console.log('第四个then方法:', result);
  })
  .catch((error) => {
    console.log(error);
  });

// then方法传入回调函数的返回值类型
promise
  .then((result) => {
    console.log('第一个then方法:', result);
    return new Promise((resolve) => {
      setTimeout(() => {
        resolve('DC to AC');
      }, 1000);
    });
  })
  .then((result) => {
    console.log('第二个then方法:', result);
  })
  .then((result) => {
    console.log('第三个then方法:', result);
  })
  .then((result) => {
    console.log('第四个then方法:', result);
  })
  .catch((error) => {
    console.log(error);
  });
